package Thread;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Timer;
import java.util.TimerTask;



public class TimerExample {
    public static void main(String[] args) {
        SharedResource sharedResource = new SharedResource();
        Timer timer = new Timer();

        timer.schedule(new MyTimerTask1(sharedResource), 0, 1000);
        timer.schedule(new MyTimerTask1(sharedResource), 2, 1000);

        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // 关闭 Timer
        timer.cancel();
    }
}



//public class TimerExample {
//
//
//    public static void main(String[] args) {
//
//        Timer timer = new Timer();
//
//        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//
//        // 定义一个执行时间过长的任务
//        TimerTask longRunningTask = new TimerTask() {
//            @Override
//            public void run() {
//                String formattedDateTime = getCurrentTime(formatter);
//                System.out.println("长任务开始： " + formattedDateTime);
//                try {
//                    Thread.sleep(5000);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//                formattedDateTime = getCurrentTime(formatter);
//                System.out.println("长任务结束： " + formattedDateTime);
//            }
//        };
//
//        // 定义一个正常的任务
//        TimerTask normalTask = new TimerTask() {
//            @Override
//            public void run() {
//                String formattedDateTime = getCurrentTime(formatter);
//                System.out.println("正常任务： " + formattedDateTime);
//            }
//        };
//
//        // 定义一个抛出异常的任务
//        TimerTask exceptionThrowingTask = new TimerTask() {
//            @Override
//            public void run() {
//                String formattedDateTime = getCurrentTime(formatter);
//                System.out.println("抛异常任务开始时间 " + formattedDateTime);
//                throw new RuntimeException("这是一个未抛出的异常");
//            }
//        };
//
//        // 安排任务
//        timer.schedule(longRunningTask, 0);
//        timer.schedule(normalTask, 2000);
//        timer.schedule(exceptionThrowingTask, 4000);
//
//        try {
//            Thread.sleep(10000);
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }
//
//        timer.cancel();
//    }
//
//    private static String getCurrentTime(DateTimeFormatter formatter) {
//        return LocalDateTime.now().format(formatter);
//    }
//}